/*
 * Copyright (c) 2017. 深圳一七科技. All rights reserved.
 */

package com.yiqi.liebang.feature.order.contract;

import com.suozhang.framework.framework.BasePresenter;
import com.suozhang.framework.framework.BaseView;
import com.yiqi.liebang.entity.bo.AnswerBo;
import com.yiqi.liebang.entity.bo.CommentBo;
import com.yiqi.liebang.entity.bo.ExpertTopicBo;
import com.yiqi.liebang.entity.bo.OrderQuestionInfofBo;
import com.yiqi.liebang.entity.bo.TopicOrderInfoBo;
import com.yiqi.liebang.feature.order.model.TopicOrderModel;

import io.reactivex.Observable;
import retrofit2.http.Body;

/**
 * LIJUWEN
 *
 * @email yiyayiyayaoljw@gmail.com
 * @date 2018/7/11 9:06
 */
public interface TopicInfoContract {

    interface Model {


        Observable<TopicOrderInfoBo> getOrderTopicInfo(String id, int type);

        Observable<String> cancleOrder(CommentBo id);

        Observable<String> refusedQuestion(String id);

        Observable<String> toExpertConfrim(ExpertTopicBo expertTopicBo);

        Observable<String> toStudentConfrim(String id);

        Observable<String> toAnswer(CommentBo answerBo);

        Observable<String> toStudentComplete(String id);

        Observable<String> toExpertComplete(String id);

        Observable<String>  remindExpertsConfirm( ExpertTopicBo id);
        Observable<String>  commentTopicOrder( CommentBo id);
    }

    interface View extends BaseView {


        void showOrderTopicInfoSuccess(TopicOrderInfoBo infofBo);

        void showRefusedQuestion(String s);

        void showExpertConfrim(String s);

        void showStudentConfrim(String s);

        void showCancleSuccess(String s);

        void showCommentSuccess(String s);

        void showOrderTopicInfoError(String error);

        void showStudentComplete();
        void showExpertComplete();
        void showRemindExpertsSuccess();

    }


    interface Presenter extends BasePresenter {

        void getOrderQuestionInfo(String id, int type);

        void refusedQuestion(String id);

        void toExpertConfrim(ExpertTopicBo expertTopicBo);

        void toStudentConfrim(String id);

        void toCommentTopicOrder(String commitUserUid, String comment, float score, String id);

        void cancleOrder(String id);

        void toStudentComplete(String id);

        void toExpertComplete(String id);
        void remindExpertsConfirm( String  id);
    }
}
